package xcmg.device.dao.mapper.logistics;


import java.math.BigDecimal;
import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import xcmg.device.dao.entity.logistics.SendBillDetailDO;
import xcmg.device.dao.entity.logistics.SendBillDetailWithBillNoDO;

@Mapper
public interface SendBillDetailMapper {

    int deleteByPrimaryKey(String id);

    int insert(SendBillDetailDO record);
    
    int mergeInto(SendBillDetailDO sendBillDetailDO);

    SendBillDetailDO selectByPrimaryKey(String id);

    int update(SendBillDetailDO record);

    List<SendBillDetailDO> list(@Param("mainId") String mainId);

    List<SendBillDetailDO> listMore(@Param("mainId") String mainId);
    
    List<String> getPurchaseNos(@Param("mainId") String mainId);

    int deleteByMainId(@Param("mainId") String mainId);

    List<String> findSourceId(@Param("mainId") String mainId);

    List<SendBillDetailDO> findByMainIdAndMaterialNo(@Param("mainId") String mainId, @Param("materialsNo") String materialsNo, @Param("rowNo") Integer rowNo);
    
    SendBillDetailDO findMySendOrderAdndMaterialNo(@Param("sendOrder") String sendOrder, @Param("materialsNo") String materialsNo, @Param("rowNo") Integer rowNo);

    Integer getCountBySendOrderAdndMaterialNo(@Param("sendOrder") String sendOrder, @Param("materialsNo") String materialsNo);
    
    SendBillDetailDO findByMainIdAndMaterialNoAndOrder(@Param("mainId") String mainId, @Param("materialsNo") String materialsNo, @Param("sourceOrder") String sourceOrder);

    List<SendBillDetailWithBillNoDO> getSendDetailByPurchaseNo(@Param("sourceOrder") String sourceOrder, @Param("materialsNo") String materialsNo);
    
    BigDecimal getPrice(@Param("mainId") String mainId, @Param("materialsNo") String materialsNo);
}